{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Gravity\n",
    "\n",
    "[![Google Collab Book](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/tum-pbs/PhiFlow/blob/develop/examples/particles/Gravity.ipynb)\n",
    "\n",
    "This example simulates Newtonian gravity between planets."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "%pip install --quiet phiflow\n",
    "from phi.jax.flow import *\n",
    "# from phi.flow import *  # If JAX is not installed. You can use phi.torch or phi.tf as well."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's define the initial positions for our planets.\n",
    "We stack the position vectors of the planets a long a new [*instance*](https://tum-pbs.github.io/PhiFlow/Math.html#shapes) dimension we call *planets*.\n",
    "Φ<sub>Flow</sub> also allows us to name the individual elements along that dimension. These names are part of the shape and will be present on all tensors derived from `x` that have this dimension."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "c:\\phd\\phiflow2\\phiml\\phiml\\backend\\_backend.py:1632: RuntimeWarning: invalid value encountered in power\n",
      "  return base ** exp\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<Figure size 864x360 with 1 Axes>"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAUMAAAFgCAYAAAAhCxufAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAAsTAAALEwEAmpwYAAAaHElEQVR4nO3deZScdZ3v8fe3OiEbIcClQWQLyKKyhKXhuAAyAhocRGVU8I6KgkTlouDGyHjn6vUeZ0AUB8aBa0QUZxxQEZFBooCK4lxZOkiAEJRVILI0soXsqfreP6oCSUh30qSrflVd79c5Oal66qnn+TSkPv171orMRJK6XaV0AElqB5ahJGEZShJgGUoSYBlKEgBjSgcYji222CKnTp1aOoakNjN79uwnMrN3Q5bRUWU4depU+vv7S8eQ1GYi4k8bugw3kyUJy1CSAMtQkgDLUJIAy1CSAMtQkgDLUJIAy1CSAMtQkgDLUFIbqk4Laqe/9/nnuWIF1UN6qZ58ZNPWaRlKaj8TJpH33kEuWVx/fsM1sOU2w1pEdVoM63Ljjro2WVL3iAPfAtf/FA5/JznrYmL6e8hbrgcgb7+J2pdPgaVLYPwE9hrPOIDqtPgAcDSwMdBTnRbHAt8HNqHedx/tmZPXr219lqGk1eTtN5HXXgrPPAkTJhGvfRMceARRae2GZEw/lto3vkjl4CPJu2+j8vbjny9DdnwllW9fT4wZQ95wLWf89vBtV3nrvsBePXPyyeq0+BTw8545+aXqtOgBJg62PstQEgB5x83U/vEkmLv6naHyP86FbXakcuqZxJve1bI8sete8OcH6qPCA9+y+ovPPUPtfx4HD94NEewyjvGrvHpNz5x8svH4ZuDC6rQYC1zeMydvHWx97jOURN5yPbUTDnlRET5v/v3UTjuG2qUzW5or3nAUefaniSPes9r0/Nd/IPb/K3ouu4PKuf/JuFityxaufNAzJ38DHAzMB75TnRbvH2xdlqHU5XLxImqfPBqWLFrHjEn+40nkPXNbEwyIdxxPfPjzxC57rh5lwTPEVvUDKnnFdwZ9f3Va7AA81jMnvwlcQH0Teq2aXoYRcWFEPB4Rd6wy7ayIuCsibouIH0fEps3OIWntctbF8NQT6zdztUr+4LzmBlpFbLUtlb/9+IumVz54GrVzTqf67n2gumKoRRwCzKlOi98DxwDnDLquZn+JfEQcDDwHfDcz92hMexPwy8xcERFnAmTm361rWX19femdrqWRVX3/62DO79b/DZMmU/n1E8TYjZoXapgiYnZm9m3IMpo+MszM3wBPrjHt6sxcWec3ANu+6I2SWuPh+4Y3/8IF6z+S7CDtsM/weGDWYC9GxIyI6I+I/oGBgRbGkrpEpWf47+l5Ce9pc0XLMCI+B6wAvjfYPJk5MzP7MrOvt3eDvvxK0trsutfw5u/dGjbdojlZCipWhhHxAeBI4G+z2TsuJQ2q8q6PDGv+OPpEwpHhyIiI6cBpwFGZuY7j+ZKa6uAjYadXrd+8k6cQ7/xwc/MU0opTay4GfgfsFhEPR8QJwNeBycA1EXFrRPzfZueQtHbR00PlX66ErbcfesYJk6ic/WNiy5e3JliLNf1yvMx8z1omf6vZ65W0/mLbnaj82w3k+Z8nr/oPWLzwhRd7euDgt1L56BeI3aaVC9lkTT/PcCR5nqHUfLngGfK3s+CZv9Rv1PCaw4it2vvst5E4z9AbNUhaTUyeQhxxbOkYLdcO5xlKUnGWoSRhGUoSYBlKEmAZShJgGUoSYBlKEmAZShJgGUoSYBlKEmAZShJgGUoSYBlKEmAZShJgGUoSYBlKEmAZShJgGUoSYBlKEmAZShJgGUoSYBlKEmAZShJgGUoSYBlKEmAZShJgGUoSYBlKEmAZShLQgjKMiAsj4vGIuGOVaZtHxDURcXfj782anUOShtKKkeF3gOlrTPss8IvM3AX4ReO5JBXT9DLMzN8AT64x+W3ARY3HFwFvb3YOSRpKqX2GW2XmI43HjwJbDTZjRMyIiP6I6B8YGGhNOkldp/gBlMxMIId4fWZm9mVmX29vbwuTSeompcrwsYjYGqDx9+OFckgSUK4MrwCOazw+DvhJoRySBLTm1JqLgd8Bu0XEwxFxAnAGcHhE3A0c1nguScWMafYKMvM9g7x0aLPXLUnrq/gBFElqB5ahJGEZShJgGUoSYBlKEmAZShJgGUoSYBlKEmAZShJgGUoSYBlKEmAZShJgGUoSYBlKEmAZShJgGUoSYBlKEmAZShJgGUoSYBlKEmAZShJgGUoSYBlKEmAZShJgGUoSYBlKEmAZShJgGUoSYBlKEmAZShJgGUoSYBlKElC4DCPiExExNyLuiIiLI2J8yTySulexMoyIbYCPA32ZuQfQAxxbKo+k7lZ6M3kMMCEixgATgT8XziOpSxUrw8ycD3wFeBB4BHgmM69ec76ImBER/RHRPzAw0OqYkrpEyc3kzYC3ATsCLwcmRcR715wvM2dmZl9m9vX29rY6pqQuUXIz+TDg/swcyMzlwGXA6wrmkdTFSpbhg8BrImJiRARwKDCvYB5JXazkPsMbgUuBW4DbG1lmlsojqbuNKbnyzPw88PmSGSQJyp9aI0ltwTKUJCxDSQIsQ0kCLENJAixDSQIsQ0kCLENJAixDSQIsQ0kCLENJAixDSQIsQ0kCLENJAixDSQIsQ0kCLENJAixDSQIsQ0kCLENJAixDSQIsQ0kCLENJAixDSQIsQ0kCLENJAixDSQIsQ0kCLENJAixDSQIsQ0kCCpdhRGwaEZdGxF0RMS8iXlsyj6TuNabw+s8BfpaZ74yIjYCJhfNI6lLFyjAipgAHAx8AyMxlwLJSeSR1t5KbyTsCA8C3I+L3EXFBRExac6aImBER/RHRPzAw0PqUkrpCyTIcA+wLnJ+Z+wALgc+uOVNmzszMvszs6+3tbXVGSV2iZBk+DDycmTc2nl9KvRwlqeWKlWFmPgo8FBG7NSYdCtxZKo+k7lb6aPLHgO81jiTfB3ywcB5JXapoGWbmrUBfyQySBF6BIkmAZShJgGUoSYBlKEnAEGUYEVdFxNQWZpGkYoYaGX4buDoiPhcRY1sVSJJKGPTUmsz8YUTMAv4B6I+IfwNqq7x+dgvySVJLrOs8w2XUrxkeB0xmlTKUpNFk0DKMiOnA2cAVwL6ZuahlqSSpxYYaGX4OeFdmzm1VGEkqZah9hge1MogkleR5hpKEZShJgGUoSYBlKEmAZShJgGUoSYBlKEmAZShJgGUoSYBlKEmAZShJgGUoSYBlKEmAZShJgGUoSYBlKEmAZShJgGUoSYBlKEmAZShJQBuUYUT0RMTvI+LK0lkkda/iZQicAswrHUJSdytahhGxLfDXwAUlc0hS6ZHhPwOnAbXCOSR1uWJlGBFHAo9n5ux1zDcjIvojon9gYKBF6SR1m5Ijw9cDR0XEA8AlwBsj4t/XnCkzZ2ZmX2b29fb2tjqjpC5RrAwz8/TM3DYzpwLHAr/MzPeWyiOpu5XeZyhJbWFM6QAAmXkdcF3hGJK6mCNDScIylCTAMpQkwDKUJMAylCTAMpQkwDKUJMAylCTAMpQkwDKUJMAylCTAMpQkwDKUJMAylCTAMpQkwDKUJMAylCTAMpQkwDKUJMAylCTAMpQkwDKUJMAylCTAMpQkwDKUJMAylCTAMpQkwDKUJMAylCTAMpQkwDKUJMAylCSgYBlGxHYR8auIuDMi5kbEKaWySNKYguteAXwqM2+JiMnA7Ii4JjPvLJhJUpcqNjLMzEcy85bG4wXAPGCbUnkkdbe22GcYEVOBfYAb1/LajIjoj4j+gYGBlmeT1B2Kl2FEbAz8CDg1M59d8/XMnJmZfZnZ19vb2/qAkrpC0TKMiLHUi/B7mXlZySySulvJo8kBfAuYl5lnl8ohSVB2ZPh64H3AGyPi1saftxTMI6mLFTu1JjN/C0Sp9UvSqoofQJGkdmAZShKWoSQBlqEkAWWvTZbUBnL5fFgym1wym1w6B6pPQS6BXAoxFmI8VCYT43aH8fsR4/eDsTtTPztu9LAMpS6T1SfJZy4iF14LS2ZD9bH1e9/CWfW/ASpTYPw+xISDiCnHExtNbVreVrEMpS6Ri28mn/pXcsH36yO/DVF7BhZdRy66jvzLl2DSEVQ2OwkmTSeiM/e+WYbSKJaZ5LP/Tj51Lizpb9JaarDwp9QW/hTG7kRs+hFis5OJyoQmra85OrPCJa1TLruX2oOHkI+8v4lFuIbl95EDp1G7fxq56L9as84RYhlKo0xmUnvyXGr37wWLf1MmxPK7qT14MLXHPkHWFpfJMEyWoTSKPD8afPwUyEWF09TIp/65Y0aJlqE0SuSi66k9sF+50eBglt9N7cE3UHv6wtJJhmQZSqNAPjeL2kNvrh/lbUtV8tEPUXvya6WDDMoylDpcPvczavPfDtnu++aSfPyT1P7y1dJB1soylDpYLvottfl/A7msdJT1lgOfpvb0BaVjvIhlKHWoXP4gtYff2gYHSoYvH/0wufCXpWOsxjKUOlTtkQ9B7enSMV6iGrVHTyBrz5UO8jzLUOpAtae/CYuuKR1jwyx/gHz8M6VTPM8ylDpMLn+QfPxTpWOMiHz6G22zuWwZSh2m9uiJUFtQOsYIybbZXLYMpQ6SCy6HhVeXjjGylj9A/uXLpVNYhlInqT319dIRmiKfnknm8qIZLEOpQ+TSP8Ci9ti/NuKqj5ELflQ0gmUodYh8+nwa95kelfKp84qu3zJsoZ5Tqux95gt/zrimNqz3X35bcucjL3wYDjm3Sv+Do/fDoRdkbRH5zEWlYzTX4uvJpXcAUHviS1Tv253q/XtRvX9vcvGNTV+9d7puoQlj4da/63lJ711RTS6/LTly9+DVW49wMLW9fPb7HXyC9frLp74BU/47+dyVVKbeQlTGkSueaMnlho4M28AXZ9XY/ytV9vinKjMuqZFZH+0dcm6VU39Uo++sKmdem1xxR/KZn9TY+8wq9w7U5/nh75MDvlJl1/9T5fp7HSWOWouuK52gJXLxr2HFI9CzBVEZB0CM2YIY+3Kq90ytFyOQi/up/ukQAGoDX+CSrzG1eldcV70r7qveFR9/KevuypFhtZb0VFr/NYeLl8PeZ1aff3764cEx+1Y4+eDgfx1R/730vu/WuPIOeOue9XmWVaH/M/XR5N0DNY7cPXjnPi9kX1GDmz7dw1Vzk/89q8a1J7+0kafaWy6ZXTpCayy9k5xwEDzxRar37kpMOozY5Bhi4huGfNvOOzAeeDMwGfhD9a44v+eVwzs83RVlmJn84o9w3vU1Zs2DJcth8jg4elpw0kHBATu0phgH20z+1d3w5V9UWbQMnlwEu28Nb92znumYfYbOdvS0+uv7bQcPPDnymVVe1hbBsrtKx2iRKrH8XmLqbFh0PbnoV9TmH0P0njHku675L57e7x25FFhavSseB7YCHh7Omkd9GS5alhzz7RpXzl19+oKlcNFNyUU3JSe+Ljj/3VFktLhkeXLSD2v0f7rCdpsFX7iqxpJVfp9NGjf0+8c1/g/2VOqjRI1CS24Fquuaa9TIJf1UJrwGJh1CTDqEHLcntWcughgD1FbOtNp7li5b7TB7lZfQbaN6n2GtlrzzwhcX4Zq++f+Sj11aZn/byuLbYhI8tzS5dM7gOSaPhwVL3S/YbbpmE7khF/6SXHb3C8+X3kqM3QHGTq1/6T005ZzEoiPDiJgOnAP0ABdk5tBj4WG6ci7MunP95j3/t8lJByZ7vLx5o8M19xlOf1VwxlEVTnxtsMc/1XjZJrD/9oOv/9h9gxMvrnHur6tcevyo/j2mVS29rXSC1lo6j9ojx0H16fpocOzOVF42k1g2j9ojJ8AT/0BMPGTEVxsrj1y2WkT0AH8EDqe+bX8z8J7MHLS++vr6sr9//b//dfp5VX4+jF0tHz0wOO/dlozaS23+MeSCH5SO0Tpjd6bnFXeve75VRMTszOzbkNWW/OQfANyTmfdl5jLgEuBtI7XwpcuTq/8wvPdccbuboGo/ucb+sVGv0M9bsgy3AR5a5fnDjWkj4tklMNxB7zNd9m9OHSKXlk7QWoW+z6XttwkjYkZE9EdE/8DAwHq/b5PxEMPc/Tdl/DDDSa0QG5VO0FqFft6SZTgf2G6V59s2pq0mM2dmZl9m9vX29q73wseNDQ7fbXiBjtqz9afWSOsSMaF0hNaKMqOSkmV4M7BLROwYERsBxwJXjOQKTjpweD/eSQdahmpDlU1KJ2itQj9vsTLMzBXAycDPgXnADzJzHWcEDs9b94AjXr1+837k9dHU02qkl2zcXqUTtFSML/PzFt1nmJlXZeaumfmKzPzSSC+/Ugl++MEKf7370POd+Lrg6++yCNWeYvx+pSO0VqGfd9RfjjdpXPCfMyrPX5t81Z2wdAVsPA7+psXXJksvyfi9qV+X0B2X5JUq/1FfhgARwWG7wWG71W+SsKKajOmxANUZojIRNnolLBvRvUhtqgfG7V1kzW1/ak0zWITqNF2zqTzu1USlzNHzrixDqeM04VrcdhQThr5vYTNZhlIHiE2OgcqU0jGaLjb7cLF1W4ZSB4jKRGLKcaVjNNeEg4hxexRbvWUodYjY9KTSEZoqNiv781mGUoeIcbvBxDeWjtEcPVsRk48uGsEylDpIZbOTS0doitj0RKLwDSksQ6mDxOR3wMTDS8cYWWN2IDY/rXQKy1DqNJWtL4DK5NIxRkhQ2fpbRE/5n8cylDpMjN2e2PIrpWOMiNh0BjHp0NIxAMtQ6kiVTWd0/ubymB2I3rNKp3ieZSh1qPrmcqeeiF1pm83jlSxDqUPF2O2pbHsldOCdsONl32ibzeOVLEOpg8XEA6lscxkwtnSU9Ra9Z1HZ9EOlY7yIZSh1uNh4OpVtL++IEWJs+VUq/+3TpWOslWUojQKx8VuobPfzNv6+lArxsguobP7J0kEGZRlKo0RMPIjK1FtgwsGlo6xu7M5Utv81lU1PKJ1kSJahNIrERq+gsv11xJbnQEwsnKZCbHYqlR1vIyYeWDjLulmG0igTEVQ2/ziVHW8rN0pcORrc6mvF7lw9XJahNEo9P0rc+iIY39ealY7diej9cseMBlfVFV8IJXWriCCmvB+mvJ9cfDP59Hnks5dALhnBtVRg0hFUNjsJJk0nojPHWJah1CViwv7EhG+TW36VfOY75MJfwJLZUH1s+AurbALj9yUmHEhMOYHYaOqI5201y1DqMtGzObH5J6Fxmksunw9LZpNLZpNLb4Xq05CLIZdCbAQxHiob12/JP36/+jf1jd2ZiNH1LZOWodTlYuw2MHYbYvJRpaMU1Zkb95I0wixDScIylCTAMpQkwDKUJMAylCSgUBlGxFkRcVdE3BYRP46ITUvkkKSVSo0MrwH2yMy9gD8CpxfKIUlAoTLMzKszc0Xj6Q3AtiVySNJK7bDP8Hhg1mAvRsSMiOiPiP6BgYEWxpLUTZp2OV5EXAu8bC0vfS4zf9KY53PACuB7gy0nM2cCMwH6+vqyCVElqXllmJmHDfV6RHwAOBI4NDMtOUlFFblRQ0RMB04D3pCZi0pkkKRVRYlBWUTcA4wD/tKYdENmfmQ93jcA/GkEImwBPDECy2mmds/Y7vmg/TO2ez5o/4wr8+2Qmb0bsqAiZVhaRPRnZovug/7StHvGds8H7Z+x3fNB+2ccyXztcDRZkoqzDCWJ7i3DmaUDrId2z9ju+aD9M7Z7Pmj/jCOWryv3GUrSmrp1ZChJq7EMJYkuK8OIeFdEzI2IWkT0rfHa6RFxT0T8ISLeXCrjqiJi74i4ISJubVyffUDpTGuKiI81bsc2NyK+XDrPYCLiUxGREbFF6Syratfb2UXE9MZn4Z6I+GzpPGuKiO0i4lcRcWfj394pG7zQzOyaP8CrgN2A64C+Vaa/GphD/UTwHYF7gZ42yHs1cETj8VuA60pnWiPfXwHXAuMaz7csnWmQnNsBP6d+wv4WpfOske1NwJjG4zOBM9sgU0/jM7ATsFHjs/Hq0rnWyLg1sG/j8WTqtwLcoIxdNTLMzHmZ+Ye1vPQ24JLMXJqZ9wP3AO0wCktgk8bjKcCfC2ZZm48CZ2TmUoDMfLxwnsF8jfrln213tDDb83Z2BwD3ZOZ9mbkMuIT6Z6RtZOYjmXlL4/ECYB6wzYYss6vKcAjbAA+t8vxhNvA/7Ag5FTgrIh4CvkL73QR3V+CgiLgxIn4dEfuXDrSmiHgbMD8z55TOsh6GvJ1dC7Xr52GtImIqsA9w44Ysp8iNGpppfW4d1k6GygscCnwiM38UEe8GvgUMeTegFucbA2wOvAbYH/hBROyUjW2XVllHxr+nvilazEjdzk4vFhEbAz8CTs3MZzdkWaOuDHMdtw4bxHzq+5VW2rYxremGyhsR3wVW7hj+IXBBKzKtah35Pgpc1ii/myKiRv3C+ZbehXewjBGxJ/V9wHMiAur/X2+JiAMy89HS+VZqw9vZFfs8DEdEjKVehN/LzMs2dHluJtddARwbEeMiYkdgF+Cmwpmgvo/wDY3HbwTuLphlbS6nfhCFiNiV+s72trnDSWbenplbZubUzJxKfXNv31YW4bqscju7o7J9bmd3M7BLROwYERsBx1L/jLSNqP92+xYwLzPPHolljrqR4VAi4h3AvwC9wE8j4tbMfHNmzo2IHwB3Ut9U+R+ZWS2ZteFE4JyIGAMsAWYUzrOmC4ELI+IOYBlwXJuMbDrJ16mfxXBNY/S6Xreza6bMXBERJ1M/At8DXJiZc0tmWovXA+8Dbo+IWxvT/j4zr3qpC/RyPEnCzWRJAixDSQIsQ0kCLENJAixDSQIsQ3WQxp1K7o+IzRvPN2s8n1o4mkYBy1AdIzMfAs4HzmhMOgOYmZkPFAulUcPzDNVRGpdgzaZ+wveJwN6ZubxsKo0GXXUFijpfZi6PiM8APwPeZBFqpLiZrE50BPAIsEfpIBo9LEN1lIjYGzic+m3DPhERW5dNpNHCMlTHaNyp5Hzq9657EDiL+k1vpQ1mGaqTnAg8mJnXNJ6fB7wqIt4wxHuk9eLRZEnCkaEkAZahJAGWoSQBlqEkAZahJAGWoSQBlqEkAfD/ASj6sGInvI2jAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 864x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "x0 = stack({\n",
    "    'Sun': vec(x=0, y=0),\n",
    "    'Earth': vec(x=-10, y=0),\n",
    "    'Mars': vec(x=0, y=12)}, instance('planets'))\n",
    "mass = wrap([1000, 10, 10], instance(x0))\n",
    "color = wrap(['#fcd700', '#006dfc', '#fc2e00'], instance(x0))\n",
    "plot(Sphere(x0, radius=mass**(1/3)*.15), color=color)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Next, we define the simulation step, advancing `x` and `v` in time by $\\Delta t$.\n",
    "The acceleration is given by $a = G \\cdot \\sum_i \\frac{m_i \\cdot \\vec r_i}{r_i^3}$.\n",
    "Inside the step, `math.pairwise_distances` computes all body-body distance vectors, adding a new dual dimension called `~planets`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "@jit_compile\n",
    "def step(x, v, dt=.5):\n",
    "    dx = math.pairwise_differences(x)\n",
    "    a = .01 * math.sum(math.safe_div(mass.planets.as_dual() * dx, math.vec_squared(dx) ** 1.5), '~planets')\n",
    "    return x + v * dt, v + a * dt"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's run the simulation. We set the initial velocity to be perpendicular to the position from the sun, so planets are on a circular orbit."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<video width=\"864\" height=\"360\" controls autoplay loop>\n",
       "  <source type=\"video/mp4\" src=\"data:video/mp4;base64,AAAAIGZ0eXBNNFYgAAACAE00ViBpc29taXNvMmF2YzEAAAAIZnJlZQAAZFRtZGF0AAACrwYF//+r\n",
       "3EXpvebZSLeWLNgg2SPu73gyNjQgLSBjb3JlIDE2MSByMzA0OCBiODZhZTNjIC0gSC4yNjQvTVBF\n",
       "Ry00IEFWQyBjb2RlYyAtIENvcHlsZWZ0IDIwMDMtMjAyMSAtIGh0dHA6Ly93d3cudmlkZW9sYW4u\n",
       "b3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTEgcmVmPTMgZGVibG9jaz0xOjA6MCBhbmFs\n",
       "eXNlPTB4MzoweDExMyBtZT1oZXggc3VibWU9NyBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVk\n",
       "X3JlZj0xIG1lX3JhbmdlPTE2IGNocm9tYV9tZT0xIHRyZWxsaXM9MSA4eDhkY3Q9MSBjcW09MCBk\n",
       "ZWFkem9uZT0yMSwxMSBmYXN0X3Bza2lwPTEgY2hyb21hX3FwX29mZnNldD0tMiB0aHJlYWRzPTEx\n",
       "IGxvb2thaGVhZF90aHJlYWRzPTEgc2xpY2VkX3RocmVhZHM9MCBucj0wIGRlY2ltYXRlPTEgaW50\n",
       "ZXJsYWNlZD0wIGJsdXJheV9jb21wYXQ9MCBjb25zdHJhaW5lZF9pbnRyYT0wIGJmcmFtZXM9MyBi\n",
       "X3B5cmFtaWQ9MiBiX2FkYXB0PTEgYl9iaWFzPTAgZGlyZWN0PTEgd2VpZ2h0Yj0xIG9wZW5fZ29w\n",
       "PTAgd2VpZ2h0cD0yIGtleWludD0yNTAga2V5aW50X21pbj0xMCBzY2VuZWN1dD00MCBpbnRyYV9y\n",
       "ZWZyZXNoPTAgcmNfbG9va2FoZWFkPTQwIHJjPWNyZiBtYnRyZWU9MSBjcmY9MjMuMCBxY29tcD0w\n",
       "LjYwIHFwbWluPTAgcXBtYXg9NjkgcXBzdGVwPTQgaXBfcmF0aW89MS40MCBhcT0xOjEuMDAAgAAA\n",
       "DPlliIQAP//+92ifAptaQ3qA5JXFJdtPgf+rZ3B8j+kFwn8EFVqgTkpov0FYez8KuAgSmg3Sdgk6\n",
       "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\n",
       "AABlAAAEAAAAABRzdHNzAAAAAAAAAAEAAAABAAACAGN0dHMAAAAAAAAAPgAAAAYAAAgAAAAAAQAA\n",
       "DAAAAAABAAAEAAAAABEAAAgAAAAAAQAADAAAAAABAAAEAAAAAAIAAAgAAAAAAQAADAAAAAABAAAE\n",
       "AAAAAAkAAAgAAAAAAQAADAAAAAABAAAEAAAAAAIAAAgAAAAAAQAADAAAAAABAAAEAAAAAAcAAAgA\n",
       "AAAAAQAADAAAAAABAAAEAAAAAAIAAAgAAAAAAQAADAAAAAABAAAEAAAAAAEAAAwAAAAAAQAABAAA\n",
       "AAABAAAMAAAAAAEAAAQAAAAAAQAACAAAAAABAAAMAAAAAAEAAAQAAAAAAQAADAAAAAABAAAEAAAA\n",
       "AAEAAAwAAAAAAQAABAAAAAABAAAMAAAAAAEAAAQAAAAAAgAACAAAAAABAAAMAAAAAAEAAAQAAAAA\n",
       "AQAADAAAAAABAAAEAAAAAAEAAAwAAAAAAQAABAAAAAABAAAMAAAAAAEAAAQAAAAAAQAADAAAAAAB\n",
       "AAAEAAAAAAEAAAgAAAAAAQAADAAAAAABAAAEAAAAAAEAAAgAAAAAAQAADAAAAAABAAAEAAAAAAEA\n",
       "AAwAAAAAAQAABAAAAAABAAAMAAAAAAEAAAQAAAAAAQAADAAAAAABAAAEAAAAAAEAAAgAAAAAAQAA\n",
       "DAAAAAABAAAEAAAAAAEAAAwAAAAAAQAABAAAAAAcc3RzYwAAAAAAAAABAAAAAQAAAGUAAAABAAAB\n",
       "qHN0c3oAAAAAAAAAAAAAAGUAAA+wAAABBgAAAPoAAAC0AAAAagAAAK4AAADRAAAAUwAAAHMAAADs\n",
       "AAAAvAAAAKkAAACKAAAA7QAAAJgAAADFAAAAdQAAAMoAAAFMAAAAngAAAMYAAAEKAAAAnQAAAMcA\n",
       "AADLAAABAwAAAFwAAAC1AAABBQAAAKUAAABeAAAAjQAAAPoAAADoAAAAqQAAARoAAACyAAAA+gAA\n",
       "ALMAAAE1AAABCQAAAFcAAADZAAAA0gAAANIAAABWAAAAvwAAAOcAAAFLAAAA3QAAANEAAAEFAAAB\n",
       "JgAAASYAAACcAAAA4AAAAScAAAGzAAAAngAAASkAAACCAAABYAAAAH4AAAD0AAABcQAAAHkAAAIA\n",
       "AAAAiwAAAQEAAABjAAABSAAAAKcAAADrAAABKwAAAaUAAABZAAABYwAAAFgAAAC+AAAATgAAAR8A\n",
       "AABSAAAA1gAAAGYAAAEdAAAAqQAAAFQAAAHJAAABLgAAAGwAAAHdAAAAYQAAAhMAAACHAAABQgAA\n",
       "AI8AAADFAAABHQAAAHQAAADrAAAAvwAAABRzdGNvAAAAAAAAAAEAAAAwAAAAYnVkdGEAAABabWV0\n",
       "YQAAAAAAAAAhaGRscgAAAAAAAAAAbWRpcmFwcGwAAAAAAAAAAAAAAAAtaWxzdAAAACWpdG9vAAAA\n",
       "HWRhdGEAAAABAAAAAExhdmY1OC43Ny4xMDA=\n",
       "\">\n",
       "  Your browser does not support the video tag.\n",
       "</video>"
      ],
      "text/plain": [
       "<matplotlib.animation.FuncAnimation at 0x1e61a323ca0>"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "v0 = math.safe_div(math.rotate_vector(x0, PI/2), math.vec_length(x0))\n",
    "x_trj, v_trj = iterate(step, batch(time=100), tensor(x0), v0)\n",
    "plot(Sphere(x_trj, radius=mass**(1/3)*.2), color=color, animate='time')"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "phiflow2",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
